# Snow CLI Usage Documentation - Official Docs Tools (snow-docs)

Snow CLI ships with a built-in **snow-docs** capability so the agent can consult **version-matched official usage docs** when installing, configuring, or troubleshooting Snow itself — instead of guessing from model memory or scraping GitHub.

It is a hybrid design with two layers:

1. **Built-in skill**: `snow-docs`
2. **Built-in read-only tools**: `snow-docs-list` / `snow-docs-search` / `snow-docs-get`

## When to use

Prefer snow-docs when the user asks about:

- First-time setup / Profile / API / model selection
- MCP install, enable/disable, troubleshooting
- Skills, Hooks, sub-agents, sensitive commands
- Proxy / browser / third-party relay / custom headers
- LSP / ACE, Team mode, SSE, privacy, plugins, and similar Snow features

Do **not** use it for unrelated application coding unless the task is configuring Snow.

## Design principles

- **Progressive disclosure**: list/search first, then get one document — never dump the full manual
- **Read-only**: docs tools never write config; config changes still go through normal file/UI flows
- **Version-locked**: docs are packaged with the CLI (`bundle/docs/usage`) and match the installed version
- **Disableable**: via `disabledSkills` and/or `disabledBuiltInServices`

## Built-in skill: snow-docs

- **Skill ID**: `snow-docs`
- **Source**: `builtin` (shipped with the CLI; no manual GitHub install)
- **Purpose**: activation description, workflow guidance, allowed tools
- **allowed-tools** (declared by the skill):
  - `snow-docs-list`
  - `snow-docs-search`
  - `snow-docs-get`
  - `filesystem-read`
  - `askuser-ask_question`

### How to inspect

- Open `/skills-` picker: `snow-docs` appears with location `builtin`
- Open `/skills -l` to enable/disable the skill in the skills list panel

### Disable the skill

Add `snow-docs` to `disabledSkills` in project/global settings:

```json
{
  "disabledSkills": ["snow-docs"]
}
```

Common location:

- Project: `<project>/.snow/settings.json`
- Or disable it directly in the skills list panel

## Built-in tools

Built-in service name: `snow-docs`

| Tool | Purpose | Required args |
| --- | --- | --- |
| `snow-docs-list` | Catalogue only (id / title / summary) | none (`locale` optional) |
| `snow-docs-search` | Keyword search with short snippets | `query` |
| `snow-docs-get` | Load one document body by id/path | `path` |

### Recommended workflow

1. `tool_search(query="snow-docs")` (when progressive tool discovery is enabled)
2. `snow-docs-list` or `snow-docs-search`
3. `snow-docs-get` for **one** matching document
4. Inspect/edit local config only as the docs specify

### Parameters

- `locale` (optional): `zh` or `en`
  - Defaults from language settings: `zh` / `zh-TW` → Chinese docs, otherwise English
- `query`: search keywords such as `MCP`, `hooks`, `skills`, `sensitive commands`
- `path`: document id such as `14.MCP Configuration.md` or `14.MCP配置.md`; also supports `en/14.MCP Configuration.md`
- `maxResults` (search, optional): default 8, max 12
- `maxChars` (get, optional): default ~24000; long docs may be truncated with `truncated: true`

### Examples

List English catalogue:

```text
snow-docs-list
locale: en
```

Search MCP:

```text
snow-docs-search
query: MCP
locale: en
```

Get one document:

```text
snow-docs-get
path: 14.MCP Configuration.md
locale: en
```

## Doc sources and packaging

- Source tree: `docs/usage/zh`, `docs/usage/en`
- Installed package: `bundle/docs/usage/...`
- Built-in skill file: `bundle/skills/snow-docs/SKILL.md`

At runtime the CLI resolves `docs/usage` next to the package/bundle so tools read the docs for the installed version.

## Disable the built-in service

To disable the docs tools only, add `snow-docs` to `disabledBuiltInServices`:

```json
{
  "disabledBuiltInServices": ["snow-docs"]
}
```

You can also manage the **Snow Docs Tools** group in:

- Privacy Settings
- Sub-Agent Configuration

Notes:

- Disabling skill `snow-docs` reduces skill activation/injection
- Disabling service `snow-docs` removes `snow-docs-list/search/get`
- Either or both can be disabled

## Difference from external MCP servers

| Item | snow-docs | External MCP |
| --- | --- | --- |
| Type | Built-in skill + tools | User-configured external service |
| Install | Ships with Snow CLI | Requires `mcp-config` setup |
| Data source | Local packaged `docs/usage` | Remote/local external process |
| Write access | Read-only docs | Depends on the external server |
| Disable path | `disabledSkills` / `disabledBuiltInServices` | MCP `enabled` flag or panel toggle |

## Safety rules

- Docs tools are read-only and never auto-write config
- Confirm high-risk changes (API keys, disabling security, sensitive-command rules)
- Do not silently rewrite global config
- Do not load every document in one turn

## Related docs

- [Skills Command Detailed Guide](./18.Skills%20Command%20Detailed%20Guide.md)
- [MCP Configuration](./14.MCP%20Configuration.md)
- [Privacy Settings Guide](./24.Privacy%20Settings%20Guide.md)
- [Sub-Agent Configuration](./05.Sub-Agent%20Configuration.md)
- [First Time Configuration](./02.First%20Time%20Configuration.md)
